Cyclic combinatorial method and system

ABSTRACT

The cyclic combinatorial method and system includes an optimizing programming method embodied in a computing machine in order to provide the capability to solve cyclic optimization problems. The method can be used to solve optimization problems having cyclic 0-1 matrices, such as network problems and cyclic workforce scheduling. The method identifies cyclically distinct solutions by enumerating cyclically distinct combinations of basic dual variables. The method can determine how many cyclically distinct combinations of m (m≦n) objects can be selected, given n cyclic objects. The method integrates partition and cyclic permutation operations in order to generate cyclically distinct selections (solutions). After cyclically enumerating all dual solutions, rules are described for recognizing the set of dominant solutions. A class of problems, which includes cyclic labor scheduling, can be efficiently solved using the cyclic combinatorial method and system.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of solving real-worldconstraint problems and, more particularly, to a method and system foroptimizing constraint models.

2. Description of the Related Art

Cyclic matrices are frequently encountered in optimization problems,such as network problems, the traveling salesman problem, laborscheduling problems, and certain reliability problems. An n^(th)-ordermatrix A, with elements a(j, k)≡a(k-j) that depend on only k-j, and thatare periodic so that a(k+n)=a(k), is called cyclic. Equivalence amongseveral necessary conditions is required for a square complex matrix tobe cyclic. The cyclic property of the constraint matrix can be exploitedin order to develop efficient solutions of optimization problems. Forexample, the cyclic property of the constraint matrix can be utilized todevise models and efficient solution procedures for cyclic optimizationproblems.

A 0-1 vector is said to be circular if its 1's occur consecutively,where the first and last entries are considered to be consecutive. Amatrix is called column (row) circular if its columns (rows) arecircular.

Cyclic sequences and permutations are important problems incombinatorial theory. An example of a cyclic combinatorial problem isthe necklace problem is as follows: how many distinct necklace patternsare possible with n beads, which are available in r different colors?The present invention addresses a simpler problem: how many distinctnecklace patterns are possible with n beads, m of which are black, andthe rest are white? If mirror image necklaces are considered equivalent,the question becomes: what is the number of bracelets (reversiblenecklaces) that can be formed with n black and white beads, m of whichare black? Both the necklace and the bracelet problems are directlyapplicable to optimization problems with cyclic 0-1 matrices. The twocolors of the beads correspond to O's and 1's in a cyclic 0-1 constraintcoefficient matrix.

Because Integer Linear Programming (ILP) problems are known to bedifficult to solve (NP hard) and have numerous applications in manyareas of optimization, such as cyclic scheduling and network problems,it would be desirable to provide a method that is generally applicableto all integer linear programming (ILP) problems of the form: minimize1^(T)x, subject to Ax≧r, where x≧0 and integer, and A is a cyclic 0-1matrix.

Thus, a cyclic combinatorial method and system solving theaforementioned problems is desired.

SUMMARY OF THE INVENTION

The cyclic combinatorial method and system includes an optimizingprogramming method embodied in a computing machine in order to providethe capability to solve cyclic optimization problems. The method can beused to solve optimization problems having cyclic 0-1 matrices, such asnetwork problems and cyclic workforce scheduling. The method identifiescyclically distinct solutions by enumerating cyclically distinctcombinations of basic dual variables.

The method can determine how many cyclically distinct combinations ofm(m≦n) objects can be selected given n cyclic objects. The methodintegrates partition of an integer and cyclic permutation operations inorder to generate all cyclically distinct combinations of m objects thatcan be selected. After cyclically enumerating all dual solutions, rulesare applied to identify the set of dominant solutions. A class ofproblems that includes cyclic labor scheduling can be efficiently solvedusing the cyclic combinatorial method and system of the presentinvention.

These and other features of the present invention will become readilyapparent upon further review of the following specification anddrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a table showing the solutions of an exemplary necklace problemusing the cyclic combinatorial method according to the present inventionwhere reverse cycles are considered equivalent to forward cycles.

FIG. 2 is a table showing the solutions of an exemplary necklace problemusing the cyclic combinatorial method according to the present inventionwhere reverse cycles are not considered equivalent to forward cycles.

FIG. 3 is a table showing solutions to another cyclic combinatorialproblem using the cyclic combinatorial method according to the presentinvention.

FIG. 4 is a flowchart of a cyclic selection process in a cycliccombinatorial method according to the present invention.

FIG. 5 is a diagram showing representations of matrices andcorresponding cycles in a cyclic combinatorial method according to thepresent invention.

FIG. 6 is a block diagram of an exemplary system for carrying out thecyclic combinatorial method according to the present invention.

Similar reference characters denote corresponding features consistentlythroughout the attached drawings.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The present invention is a programming method embodied in a computingmachine that provides the capability to solve cyclic optimizationproblems. The method can be used to solve optimization problems havingcyclic 0-1 matrices, such as network problems and cyclic workforcescheduling. The method identifies cyclically distinct solutions byenumerating cyclically distinct combinations of basic dual variables.

The method can determine how many cyclically distinct combinations ofm(m≦n) objects can be selected, given n cyclic objects. The methodintegrates partition of an integer and cyclic permutation operations inorder to generate all cyclically distinct combinations of m objects thatcan be selected. After cyclically enumerating all dual solutions, rulesare applied to identify the set of dominant solutions. A class ofproblems, which includes cyclic labor scheduling, can be efficientlysolved using the cyclic combinatorial method and system of the presentinvention.

The cyclic combinatorial optimization algorithm has two main steps.First, partition and permutation tools are combined for selectingcyclically distinct subsets out of a number of cyclic objects.Considering the columns (variables) of these matrices as cyclic objects,the algorithm can be used to select only cyclically distinctcombinations of columns (basic dual variables). The process ofdetermining these cyclic combinations is exactly equivalent to solvingthe necklace or the bracelet problem. Subsequently, simple rules areintroduced to identify a small subset of dominant dual solutions. Thedominant dual solutions can be used to calculate bounds on the objectivefunction, impose efficient cuts on the ILP model, or even completelysolve the given cyclic 0-1 optimization problem using primal-dualrelationships.

Given the total number of cyclic objects n, and the number of selectedobjects m(m≦n), the combinatorial method provides the capability ofgenerating all cyclically distinct combinations of m objects that can beselected, and determining a small set of dominant solutions that includean optimum solution for a given problem. The capability of generatingall cyclically distinct combinations of m objects that can be selectedis achieved by means of a cyclic selection procedure, which combinespartition of an integer and the permutation of objects.

The partition of a positive integer n into m parts (m≦n) as arepresentation of n as a sum of positive integers can be expressed as:

n=v ₁ +v ₂ + . . . +v _(m)  (1)

where

v_(i)>0, i=1, . . . m

Denoting the number of (unordered) partitions of n into m parts byP_(m)(n), it is shown that:

P ₁(n)=P _(n)(n)=1,  (2), and

P ₂(n)=└n/2┘  (3)

where

└a┘=largest integer less than or equal to a.

The remaining values of P_(m)(n) can be obtained by the recursiverelationship:

P _(m)(n)=P ₁(n−m)+P ₂(n−m)+ . . . +P _(m)(n−m)  (4)

The permutation of n objects can be defined as an order of the nobjects. There are n! permutations of n distinct objects. A combinationof n distinct objects taken m at time (an r-combination of n elements)can be defined as a selection of m of the n objects without regard toorder. When the selection is made without replacement (i.e., whenrepetitions of the objects are not allowed), the number ofr-combinations of n elements is:

$\begin{matrix}{\begin{pmatrix}n \\m\end{pmatrix} = \frac{n!}{{m!}{\left( {n - m} \right)!}}} & (5)\end{matrix}$

The cyclic combinatorial method of the present invention combinespartition with permutation and adds safeguards to eliminate cyclicallyredundant combinations. Effectively, a scheme for generating cyclicallydistinct permutations is applied to m partitions of an integer n. Thesteps of the cyclic selection procedure are briefly described as followswith reference to the flowchart of FIG. 4. Given integers n and m (m≦n),(the integers may be acquired as inputs, as shown at step 405 in FIG.4), partition n into m parts (v₁, v₂, . . . , v_(m)) (at step 410 ofFIG. 4) using a procedure that generates monotonic (non-decreasing ornon-increasing) partitions. If n≦3, or n−m≦1, or v₁=v_(m) (all parts areequal), store the current combination and go to the next partition.Otherwise, fixing v₁, find the next permutation of the m−1 remainingparts (v₂, . . . , v_(m)), as indicated at step 412 of FIG. 4, andcyclically compare the resulting (current) combination (including v₁)with all stored combinations of the current partition, as indicated atsteps 414, 416, 418, and 420.

If there is no match, store the current combination (as indicated atstep 422) and continue to the next permutation. Otherwise, the currentcombination is ignored, and processing is allowed to go to nextpermutation, as indicated at step 424 and the loop back to step 412. Asshown at steps 424 and 426, for a last permutation that is also a lastpartition, an equality test is performed at process 428, viz., whetherm=n. If so, all processing ends at step 432. Otherwise, m is incremented(at step 430), and the process is recursively repeated, beginning withpartitioning n into m parts (step 410). If, at step 426, the permutationis not the last permutation in the cycle, processing resumes at step412.

In step 410, any monotonic partition procedure can be used. Theimplementation of the optimization procedure uses a procedure thatgenerates non-decreasing partitions (1≦v₁≦v₂≦ . . . ≦v_(m)), beginningwith n=n and ending with n=1+1+ . . . +1. No permutation is required forthe three cases specified if n≦3, or n−m≦1, or v₁=v_(m), because allpermutations for these cases are cyclically equivalent.

In step 412, an adjacent-mark permutation procedure is used in theimplementation of the optimization algorithm. For each currentcombination, cyclical comparisons are performed as follows. Since v₁ isfixed in all permutations, all sequences will start with v₁ (thesmallest partition). Therefore, any element in the sequence whose valueis equal to v₁ will be considered as a starting point for comparisonswith previously stored permutations. For each v_(i)=v₁, i=2, . . . , m,start with v_(i) and proceed to complete the cycle, comparing theresulting sequence with all stored sequences for the current partition.

As shown at step 414 in FIG. 4, if the 0-1 matrix consists of reversible(symmetric) cycles, then it is necessary to proceed from each v_(i) inboth directions, constructing two different sequences, as indicated atstep 416. The forward sequence to be compared is (v_(i), v_(i+1),v_(i+2), . . . , v_(m), v₁, v₂, . . . , v_(i−1)), while the reversesequence is (v_(i), v_(i−1), v_(i−2), . . . , v₁, v_(m), v_(m−1), v^(m),. . . , v_(i+1)). A reversible (symmetric) 0-1 cycle can be turned over,producing the same cycle. Reversible 0-1 cycles are symmetric, i.e., thecycle can be divided into two identical (mirror image) halves. Examplesof reversible (symmetric) and irreversible (asymmetric) 0-1 matrices andcorresponding cycles are shown in FIG. 5 as matrices 505 a, 510 a, 515 aand 520 a and their corresponding reversible 0-1 cycles 505 b and 510 band corresponding irreversible 0-1 cycles 515 b and 520 b. As shown atstep 418 in FIG. 4, an irreversible 0-1 cycle is rotated forward,starting with v_(i)=v₁.

The case (n=7, m=4) illustrates how the cyclic selection procedureworks. At step 410, three possible partitions of 7 into 4 parts (v₁, v₂,v₃, v₄) are determined, namely, (1, 1, 1, 4), (1, 1, 2, 3), and (1, 2,2, 2).

At step 412, let us consider only the second partition (1, 1, 2, 3).Thus, fixing “v₁=1”, there are 3!=6 permutations of (v₂, v₃, v₄),namely, (1, 1, 2, 3), (1, 1, 3, 2), (1, 2, 1, 3), (1, 2, 3, 1), (1, 3,1, 2), and (1, 3, 2, 1).

Storing the first sequence as the first permutation, the remainingpermutations are compared to it by starting from each “v_(i)=1” andproceeding in both directions. For example, the second permutation above(1, 1, 3, 2) can be expressed as:

Forward direction: (1, 1, 3, 2), (1, 3, 2, 1)

Reverse direction: (1, 2, 3, 1), (1, 1, 2, 3).

From the forward rotation, the permutation (1, 1, 3, 2) is cyclicallyequivalent to (1, 3, 2, 1). Since the reverse rotation does not producethe original sequence, this permutation is not reversible. However, ifthe direction of rotation is ignored (reverse cycles are consideredequivalent), then (1, 1, 3, 2) is also cyclically equivalent to (1, 1,2, 3). In any case, the permutation (1, 1, 3, 2) is ignored, and theprocedure then moves to check the four remaining permutations. At theend of this process, only three cyclically distinct permutations areidentified for the second partition: (1, 1, 2, 3), (1, 2, 3, 1), and (1,2, 1, 3). However, if reverse cycles are considered equivalent, thenonly two cyclically distinct permutations remain: (1, 1, 2, 3), and (1,2, 1, 3).

The procedure represents each combination as a sequence of m partitionsof n. Actually, these partitions are distances (differences) betweensuccessive numbers. The algorithm's representation can be converted tospecific choices from the set (1, . . . , n). For example, given thatn=7 and m=4, the sequence of partitions (v₁, v₂, v₃, v₄)=(1,2,1,3)corresponds to selecting the numbers (1,1+2,1+2+1,1+2+1+3)=(1,3,4,7)from the numbers (1, 2, . . . , 7). The selection (1,3,4,7) iscyclically equivalent to (2,4,5,1), or (7,2,3,6), and so on.Alternatively, this sequence can be represented as selecting from thecyclic set (1, . . . , 7) the numbers (k,k+1,k+1+2,k+1+2+1) mod 7, or(k_(i)k+2,k+2+1,k+2+1+3) mod 7, and so on. As a convention, the cycliccombination (v_(i), v₂, . . . , v_(m)) will be represented by thesequence (k,k+v₂,k+v₂+v₃, . . . , k+v₂+v₃+ . . . +v_(m)) mod n, for k=1,. . . n.

As stated above, for the linear (non-cyclic) case, the number of ways melements can be selected out of n objects is given by the well-knownformula in equation (5). An a-array necklace of length n may be definedas a string of n characters, each of a possible types, where rotation isignored, such that (b₁b₂ . . . b_(n)) is equivalent to (b_(k+1)b_(k+2) .. . b_(n) . . . b₁b₂ . . . b_(k)) for any k. A free or reversiblenecklace (one that can be turned over) is called a bracelet. For freenecklaces, opposite orientations (mirror images) are regarded asequivalent, so the necklace can be picked up and flipped over. Thenumber of such bracelets (reversible necklaces) with n beads, m of whichare black and n−m are white, is given by:

$\begin{matrix}{{B_{m}(n)} = {{\frac{1}{2n}{\sum\limits_{d{({m,n})}}{{\varphi (d)}\begin{pmatrix}{n/d} \\{m/d}\end{pmatrix}}}} + {\frac{1}{2}\begin{pmatrix}\left\lfloor \frac{n - \frac{1 - \left( {- 1} \right)^{m}}{2}}{2} \right\rfloor \\\left\lfloor \frac{m}{2} \right\rfloor\end{pmatrix}}}} & (6)\end{matrix}$

where └a┘ denotes the integer part of a.

In fixed necklaces, reversal of strings is respected, i.e., oppositeorientations are not considered equivalent. The number of necklaces withn black and m white beads (i.e. total number of beads equal to n+m) maybe defined as α₀(n,m). Therefore, the number of binary (two-color)necklaces with n beads of which mare black is α₀(m,n−m), which is givenby:

$\begin{matrix}{{C_{m}(n)} = {\frac{1}{n}{\sum\limits_{d{({m,n})}}{{\varphi (d)}\begin{pmatrix}{n/d} \\{m/d}\end{pmatrix}}}}} & (7)\end{matrix}$

where φ(d)=Euler's totient function, i.e., the number of numbers lessthan d that are coprime (have no common factor other than 1 or −1) to d.For example, φ(1)=|{1}|=1, and φ(6)=|{1,5}|=2.

Using the above expressions for the number of cyclic selections, simplerexpressions can be determined for three special cases. The first case iswhen m≦3, and the second case is when n−m≦1. In both cases, nopermutations are required, and the number of cyclic selections is simplythe number of partitions P_(m)(n). The third special case applies to theremaining (unselected) n−m objects. For the linear (non-cyclic) case,the number of combinations of the selected n items is equal to thenumber of combinations of the remaining n−m items, or

$\begin{pmatrix}n \\m\end{pmatrix} = {\begin{pmatrix}n \\{n - m}\end{pmatrix}.}$

This is also true for the cyclic case. The three cases are summarized asfollows:

B _(m)(n)=C _(m)(n)=P _(m)(n), m≦3, or n−m≦1  (8)

B _(n−m)(n)=B _(m)(n), C _(n−m)(n)=C _(m)(n)  (9)

For the remaining cases of n and m, the values of B_(m)(n) and C_(m)(n)must be calculated by (6) and (7), respectively. Alternatively, thesevalues can be obtained by applying the steps of the cyclic selectionprocedure. In order to calculate these values, and to facilitate theimplementation of these steps, the algorithm was coded as a MicrosoftPowerStation® FORTRAN program named CYCLE. The program was run for asmall representative sample of n and m, and the values of B_(m)(n) andC_(m)(n) were recorded. These values are shown in the tables shown inFIGS. 1 and 2, respectively.

Referring to FIG. 6, an exemplary computing system 600 for implementingcyclic combinatorial optimization method of the present invention isdescribed. Computing system 600 is capable of executing the cycliccombinatorial algorithm 400 as an application. Exemplary computingsystem 600 is controlled primarily by computer readable instructions,which may be in the form of software, firmware, a combination ofsoftware and firmware, or the like. Such software may be executed withincentral processing unit (CPU) 610 to cause system 600 to perform auseful task, such as execution of the cyclic combinatorial algorithm ofthe present invention. While computing system 600 may utilize a centralprocessing unit 610 that is implemented by microelectronic chips in ageneral purpose, microprocessor configuration, system 600 may have avariety of computing machine architectures, such as programmable logicarrays (PLA), application specific integrated circuits (ASIC), fieldprogrammable gate arrays (FPGA), and the like. Moreover, computingenvironment 600 may use resources of remote CPUs through communicationsnetwork 660 or other data communications means.

In the embodiment shown, a math co-processor 615 designed to performnumeric calculations more efficiently than general-purpose CPU 610 isprovided to perform additional functions and/or assist CPU 610 inexecuting the cyclic combinatorial algorithm of the present invention.As shown in FIG. 6, CPU 610 can be connected to co-processor 615 througha bus 612.

In operation, CPU 610 fetches, decodes, and executes instructions, andtransfers information to and from other resources via the computer'smain data transfer path, system bus 605. The system bus 605 connects thecomponents in computing system 600 and provides a data exchange medium.System bus 605 preferably includes data lines for data communicationamong/with attached devices, address lines for addressing attacheddevices, and control lines for polling, interrupting, controllingattached devices on the system bus 605.

Memory devices coupled to system bus 605 may include random accessmemory (RAM) 625, read only memory (ROM) 630, or the like. Programmedinstructions implementing the cyclic combinatorial algorithm of thepresent invention may be stored and retrieved RAM 625, ROM 630, orstored/retrieved to/from a combination of both storage devices.

ROMs 630 generally contain stored data that cannot be modified.Alternatively, some of the data generated or used by the presentinvention could be stored in a ROM that is programmable forstorage/retrieval of infrequently changing data.

Data stored in RAM 625 can be read or changed by CPU 610 or otherhardware devices. Access to RAM 625 and/or ROM 630 may be controlled bymemory controller 620. Memory controller 620 may provide an addresstranslation function that translates virtual addresses into physicaladdresses as instructions are executed. Memory controller 620 may alsoprovide a memory protection function that isolates processes within thesystem and isolates system processes from user processes. Thus, aprogram running in a user mode can normally access only memory mapped byits own process virtual address space so that it cannot access memorywithin the virtual address space of another process, unless permissionfor memory sharing between the processes has been granted.

In addition, computing system 600 may contain peripheral controller 635responsible for communicating instructions from CPU 610 to peripherals,such as, printer 640, keyboard 645, mouse 650, and data storage device655. Tangible results of processing according to the present inventionmay be stored in the data storage drive 655 and/or may be printed out onthe printer 640. Moreover, programmed instructions implementing thecyclic combinatorial algorithm may be stored, in whole or in part,within the data storage drive 655.

Display 665, which is controlled by display controller 663, is used todisplay visual output generated by computing system 600. Such visualoutput may include text, graphics, animated graphics, and video. Display665 may be implemented with a CRT-based video display, an LCD-based flatpanel display, a gas plasma-based flat panel display, a touch panel, orother display forms. Display controller 663 includes electroniccomponents required to generate a video signal that is sent to display665. It is within the contemplation of the present invention to providetangible results of the cyclic combinatorial algorithm via anycombination of text, graphics, animated graphics, and video that can bepresented on display 665.

Additionally, computing system 600 may contain network adaptor 670 thatcan be used to connect computing system 600 to an external communicationnetwork 660, e.g., the Internet, an intranet, or the like.Communications network 660 may provide computer users with means ofcommunicating and transferring software implementation and results ofthe cyclic combinatorial algorithm electronically. Moreover,communications network 660 may provide distributed processing, which caninvolve a plurality of computing elements sharing the workload andcooperatively performing the cyclic combinatorial algorithm. It will beappreciated that the network connections shown are exemplary, and othermeans of establishing a communications link between the computers may beused.

Exemplary computer system 600 is merely illustrative of a computingenvironment in which the inventive problem solving methods may operateand does not limit the implementation of the herein described cycliccombinatorial algorithmic method in computing environments havingdiffering components and configurations, as the inventive conceptsdescribed herein may be implemented in various computing environmentshaving various components and configurations.

The cyclic selection procedure can be used as a step in an overallmethodology to solve a general class of important and NP-hard cyclicoptimization problems. Given an integer linear programming (ILP) problemof the form:

Minimize Z=1^(T)x  (10)

subject to Ax≧r  (11)

where x≧0 and integer, and A is a cyclic 0-1 matrix, a cyclicoptimization algorithm employing the cyclic selection procedure involvesthe following steps.

First, ignoring integrality restrictions, the dual LP model isconstructed as:

Maximize W=r^(T)y  (12)

subject to A^(T)y≦1  (13)

where y≧0.

Second, all cyclically distinct solutions of the dual model aredetermined. To solve the dual problem we allocate the unit resource orright-hand side of dual constraints (13), which is equal to 1, among thedual variables (columns of A^(T)) in order to maximize the dualobjective W. We may allocate the unit resource among any number m ofselected columns, where m=1, . . . , n. Since the n columns (variables)of the dual matrix A^(T) are cyclic, the number of cyclically distinctdual solutions corresponds to the number of cyclically distinctselections of m columns (variables) out of the n cyclic columns of thematrix. It can be proven that the optimum dual values are equal. Thus,for each selection, the value of the dual variables y₁, . . . , y_(n) is1 over the maximum sum (among all rows) of variables in the m selectedcolumns. Thus, the dual solution is specified by:

$\begin{matrix}{y_{i} = \left\{ \begin{matrix}{{1/L},} & {i \in {S\; C}} \\{0,} & {i \notin {S\; C}}\end{matrix} \right.} & (14) \\{W = {\frac{1}{L}{\sum\limits_{i \in {S\; C}}r_{i}}}} & (15) \\{{L = {\max\limits_{i}\left( {\sum\limits_{j \in {S\; C}}a_{ij}^{T}} \right)}},} & (16)\end{matrix}$

where

α_(ij) ^(T)=elements of A^(T), where i=1, . . . , n, j=1, . . . , n;

L=max. number of non-zero coefficients in selected columns, L≦m; and

SC=set of m selected columns (variables).

Third, out of all cyclically distinct dual solutions, the best ones aregenerally identified as having the highest ratio of m/L. Specifically,two sets of rules are used to identify the dominant solutions. Accordingto the first set, solution F is considered to dominate solution G if:

SC_(G)⊂SC_(F)(implying m_(F)>m_(G))  (17a); and

L_(F)=L_(G)  (17b)′

According to the second set of rules, solutions F and G are consideredto dominate solution H if:

SC _(H) =SC _(F) +SC _(G) (implying m _(H) =m _(F) +m _(G))  (18a); and

L _(H) =L _(F) +L _(G)  (18b).

Fourth, dominant dual solutions are rounded up to nearest integer valuesin order to develop a general expression for the value of W Toefficiently obtain an integer primal solution, the following constraintis added to the model. Addition of this constraint greatly improvescomputational performance.

$\begin{matrix}{{\sum\limits_{j = 1}^{n}x_{j}} \geq {W.}} & (19)\end{matrix}$

Fifth, applying primal-dual complementary slackness relations todominant dual solutions, closed form solutions to the primal problem canbe derived.

Labor Scheduling Examples

Workforce days-off scheduling problems are practical and well-studiedcyclic labor scheduling problems, which apply to organizations thatoperate seven days a week. Usually, the notation (u, 0 is used to denotethe problem of assigning u consecutive work days out of a cycle ofvdays. In order to illustrate the cyclic combinatorial method, threedays-off scheduling examples are used, including the (3,7), the (4,7),and the (5,7) problems, corresponding to three, four, and fiveconsecutive workdays per week, respectively. Allowing only consecutivestretches of off-days in the weekly schedule, there are seven days-offpatterns per week for each problem. Given varying labor demands for eachday of the week, the objective is to determine how many employees toassign to each days-off pattern in order to satisfy labor demands withthe minimum workforce size. Mathematically, the weekly days-offscheduling problem is represented by the following integer programmingmodel:

$\begin{matrix}{{{Minimize}\mspace{14mu} Z} = {\sum\limits_{j = 1}^{7}x_{j}}} & (19) \\\begin{matrix}{{{{subjecct}\mspace{14mu} {to}\mspace{14mu} {\sum\limits_{j = 1}^{7}{a_{ij}x_{j}}}} \geq r_{i}},} & {{i = 1},2,\ldots \mspace{11mu},7}\end{matrix} & (20) \\\begin{matrix}{{x_{j} \geq {0\mspace{14mu} {and}\mspace{14mu} {integer}}},} & {{j = 1},2,\ldots \mspace{11mu},7}\end{matrix} & (21)\end{matrix}$

where

Z=workforce size, i.e., total number of workers assigned;

a_(ij)=1 if day i is a workday for days-off pattern j, otherwisea_(ij)=0;

r_(i)=number of workers required on day i, i=1, 2, . . . , 7; and

x_(j)=number of workers assigned to weekly days-off pattern j.

The dual of the LP relaxation of the days-off scheduling model, withdual variables y₁, . . . , y₇, is given by:

$\begin{matrix}{{{{maximize}\mspace{14mu} W} = {\sum\limits_{i = 1}^{7}{r_{i}y_{i}}}}{{subject}\mspace{14mu} {to}}} & (22)\end{matrix}$

$\begin{matrix}\begin{matrix}{{{\sum\limits_{i = 1}^{7}{a_{ij}y_{i}}} \leq 1},} & {{j = 1},2,\ldots \mspace{11mu},7}\end{matrix} & (23) \\\begin{matrix}{{y_{i} \geq 0},} & {{i = 1},2,\ldots \mspace{11mu},7.}\end{matrix} & (24)\end{matrix}$

All feasible dual solutions are obtained by dividing the right-hand sideof (23) among any m selected dual variables, where m=1, . . . , 7. Sincethe 0-1 patterns of the (3/4), (4/3), and (5/2) days-off schedulingproblem are reversible (symmetric), the table of FIG. 1 is applicable.From FIG. 1, we know that the total number of cyclic selections out of 7objects is equal to 18. Running program CYCLE for n=7, we obtain the 18cyclic selections and corresponding dual solutions shown in the table ofFIG. 3. Applying dominance criteria (17) and (18), we find out the dualsolutions noted in bold in FIG. 3 that dominate all other solutions.

For each days-off problem, the minimum workforce size W is obtained bychoosing the maximum value of the three solutions, and rounding up tointeger values. The validity of rounding up dual continuous solutions toobtain optimum primal solutions is well known. Let ┌α┐ denote thesmallest integer greater than or equal to a, i.e., a rounded up to thenearest integer. Then, from the table shown in FIG. 3, the minimumworkforce size W for each of the three days-off problems is given by:

$\begin{matrix}{{W_{({3,7})} = {\max \left\{ {\left\lceil {\frac{1}{3}{\sum\limits_{i = 1}^{7}r_{i}}} \right\rceil,Q_{\max}} \right\}}}{where}\begin{matrix}{{Q_{\max} = {\max\limits_{{i = 1},\mspace{11mu} \ldots \mspace{11mu},7}\left\{ Q_{i} \right\}}},} & {Q_{i} = {r_{i} + r_{i + {3{({{mod}\mspace{14mu} 7})}}}}}\end{matrix}} & (25) \\{{W_{({4,7})} = {\max \left\{ {r_{\max},\left\lceil {\frac{1}{4}{\sum\limits_{i = 1}^{7}r_{i}}} \right\rceil,\left\lceil \frac{S_{\max}}{3} \right\rceil,\left\lceil \frac{T_{\max}}{2} \right\rceil,\left\lceil \frac{U_{\max}}{2} \right\rceil} \right\}}}{where}{{S_{\max} = {\max\limits_{{i = 1},\mspace{11mu} \ldots \mspace{11mu},7}\left\{ S_{i} \right\}}},{S_{i} = {r_{i} + r_{i + {1{({{mod}\mspace{14mu} 7})}}} + r_{i + {2{({{mod}\mspace{14mu} 7})}}} + r_{i + {4{({{mod}\mspace{14mu} 7})}}} + r_{i + {5{({{mod}\mspace{14mu} 7})}}}}}}{{T_{\max} = {\max\limits_{{i = 1},\mspace{11mu} \ldots \mspace{11mu},7}\left\{ T_{i} \right\}}},{T_{i} = {r_{i} + r_{i + {1{({{mod}\mspace{14mu} 7})}}} + r_{i + {4{({{mod}\mspace{14mu} 7})}}}}}}{{U_{\max} = {\max\limits_{{i = 1},\mspace{11mu} \ldots \mspace{11mu},7}\left\{ U_{i} \right\}}},{U_{i} = {r_{i} + r_{i + {2{({{mod}\mspace{14mu} 7})}}} + r_{i + {4{({{mod}\mspace{14mu} 7})}}}}}}} & (26) \\{{W_{({5,7})} = {\max \left\{ {r_{\max},\left\lceil \frac{R_{\max}}{3} \right\rceil,\left\lceil {\frac{1}{5}{\sum\limits_{i = 1}^{7}r_{i}}} \right\rceil} \right\}}}{where}{{R_{\max} = {\max\limits_{{i = 1},\mspace{11mu} \ldots \mspace{11mu},7}\left\{ R_{i} \right\}}},{R_{i} = {r_{i} + r_{i + {1{({{mod}\mspace{14mu} 7})}}} + r_{i + {3{({{mod}\mspace{14mu} 7})}}} + r_{i + {5{({{mod}\mspace{14mu} 7})}}}}}}} & (27)\end{matrix}$

The above examples show the effectiveness of the cyclic selectionalgorithm in exploiting the cyclic nature of constraint matrices todramatically reduce computational effort. Instead of going through7!=5,040 linear combinations of the 7 dual variables, the optimum dualsolutions are determined by enumerating only 18 cyclic combinations. Thethree days-off scheduling examples were purposefully chosen for theirsimplicity, in order to clearly illustrate the methodology. The methodof the present invention is certainly not limited to this particularproblem or to problems of similar size.

It is to be understood that the present invention is not limited to theembodiment described above, but encompasses any and all embodimentswithin the scope of the following claims.

1. A cyclic combinatorial integer linear programming optimization methodof solving a problem, comprising the steps of: identifying a linearobjective function and its linear constraints for optimization;codifying the objective function and the linear constraints as aplurality of matrices; enumerating cyclically distinct combinations ofbasic dual variables related to any of the matrices having cyclic 0-1properties so as to identify cyclically distinct solutions; and applyinga set of rules to the cyclically distinct solutions in order to providea set of dominant solutions to thereby solve the problem.
 2. The cycliccombinatorial method according to claim 1, wherein the identifying andcodifying steps further comprise the steps of: expressing an ILP problemin the form of minimizing Z=1^(T)x subject to Ax≧r where x≧0 andinteger, and A is a cyclic 0-1 matrix; while ignoring integralityrestrictions, constructing a dual LP model in the form of maximizingW=r^(T)y subject to A^(T)y≦1 where y≧0.
 3. The cyclic combinatorialmethod according to claim 1, wherein the enumerating step furthercomprises the step of using a procedure that generates monotonicpartitions.
 4. The cyclic combinatorial method according to claim 3,wherein the monotonic partition generating procedure further comprisesthe steps of: expressing a partition of a positive integer n into mparts (m≦n) as n=v₁+v₂+ . . . +v_(m), where Vi>0, i=0, . . . , m;denoting a number of unordered partitions of n into m parts by P_(m)(n),such that P₁(n)=P_(n)(n)=1, P₂(n)=└n/2┘; and determining remainingvalues of P_(m)(n) by means of the relationshipP_(m)(n)=P₁(n−m)+P₂(n−m)+ . . . +P_(m)(n−m) such that if n≦3, n−m≦1, orv₁=v_(m), the current combination is stored and the next partition isprocessed.
 5. The cyclic combinatorial method according to claim 4,further comprising the steps of: determining a next permutation of them−1 remaining parts (v₂, . . . , v_(m)), while fixing v₁; cyclicallycomparing the resulting (current) combination (including v₁) with allstored combinations of the current partition; storing the currentcombination and proceeding to a next permutation if the comparison stepresults in no match; and ignoring the current combination and proceedingto the next permutation if the comparison step results in a match. 6.The cyclic combinatorial method according to claim 5, further comprisingthe steps of: using an adjacent-mark permutation procedure in theimplementation of the optimization algorithm such that all sequencesstart with v₁ (the smallest partition); and constructing a forwardsequence and a reverse sequence if a 0-1 matrix comprises reversiblesymmetric cycles.
 7. The cyclic combinatorial method according to claim2, further comprising the steps of: allocating right hand side of dualconstraints A^(T)y≦1, which is equal to 1, among the dual variables(columns of A^(T)) in order to maximize the dual objective W in a waysuch that the unit resource is allocated among any number m of selectedcolumns, where m=1, . . . , n; and${{specifying}\mspace{14mu} {the}\mspace{14mu} {dual}\mspace{14mu} {solution}\mspace{14mu} {by}\mspace{14mu} y_{i}} = \left\{ {\begin{matrix}{{1/L},} & {i \in {S\; C}} \\{0,} & {i \notin {S\; C}}\end{matrix},{W = {\frac{1}{L}{\sum\limits_{i \in {S\; C}}r_{i}}}},{L = {\max\limits_{i}\left( {\sum\limits_{j \in {SC}}a_{ij}^{T}} \right)}},{{{where}a_{ij}^{T}} = {{elements}\mspace{14mu} {of}\mspace{14mu} A^{T}}},{{{where}i} = 1},\ldots \mspace{11mu},n,{j = 1},\ldots \mspace{11mu},n,{L = \max}} \right.$number of non-zero coefficients in selected columns, L≦m, SC=set of mselected columns (variables).
 8. The cyclic combinatorial methodaccording to claim 1, wherein the rules application step furthercomprises the steps of: utilizing a first rule wherein solution Fdominates solution G if SC_(G)⊂SC_(F) (implying m_(F)>m_(G)) andL_(F)=L_(G); utilizing a second rule wherein solutions F and G areconsidered to dominate solution H if SC_(H)=SC_(F)+SC_(G) (implyingm_(H)=m_(F)+m_(G)) and L_(H)=L_(F)+L_(G); rounding dominant dualsolutions up to nearest integer values in order to develop a generalexpression for the value of W, and adding the constraint${\sum\limits_{j = 1}^{n}x_{j}} \geq W$ in order to efficiently obtainan integer primal solution to the problem; and applying primal-dualcomplementary slackness relations to the dominant dual solutions inorder to derive closed-form solutions to the primal problem.
 9. A cycliccombinatorial integer linear programming optimization method of solvinga problem, performed by a machine executing a program of instructionstangibly embodied in a program storage device readable by the machine,the method comprising the steps of: accepting parameters related to theproblem as inputs to the program; identifying a linear objectivefunction and its linear constraints for optimization; codifying theobjective function and the linear constraints as a plurality ofmatrices; enumerating cyclically distinct combinations of basic dualvariables related to any of the matrices having cyclic 0-1 properties soas to identify cyclically distinct solutions; applying a set of rules tothe cyclically distinct solutions in order to provide a set of dominantsolutions to thereby solve the problem; and displaying the set ofdominant solutions on a display device of the machine.
 10. The cycliccombinatorial integer linear programming optimization method accordingto claim 9, wherein the identifying and codifying steps further comprisethe steps of: expressing an ILP problem in the form of minimizingZ=1^(T)x subject to Ax≧r where x≧0 and integer, and A is a cyclic 0-1matrix; and while ignoring integrality restrictions, constructing a dualLP model in the form of maximizing W=r^(T)y subject to A^(T)y≦1 wherey≦0.
 11. The cyclic combinatorial method according to claim 9, whereinthe enumerating step further comprises the step of using a procedurethat generates monotonic partitions.
 12. The cyclic combinatorial methodaccording to claim 11, wherein the monotonic partition generatingprocedure further comprises the steps of: expressing a partition of apositive integer n into m parts (m≦n) as n=v₁+v₂+ . . . +v_(m), whereVi>0, i=1, . . . , m; denoting a number of unordered partitions of ninto m parts by P_(m)(n), such that P₁(n)=P_(n)(n)=1, P₂(n)=└n/2┘; anddetermining remaining values of P_(m)(n) by means of the relationshipP_(m)(n)=P₁(n−m)+P₂(n−m)+ . . . + P_(m)(n−m) such that if n≦3, n−m≦1, orv₁=v_(m), the current combination is stored and the next partition isprocessed.
 13. The cyclic combinatorial method according to claim 12,further comprising the steps of: determining a next permutation of them−1 remaining parts (v₂, . . . , v_(m)), while fixing v₁; cyclicallycomparing the resulting (current) combination (including v₁) with allstored combinations of the current partition; storing the currentcombination and proceeding to a next permutation if the comparison stepresults in no match; and ignoring the current combination and proceedingto the next permutation if the comparison step results in a match. 14.The cyclic combinatorial method according to claim 13, furthercomprising the steps of: using an adjacent-mark permutation procedure inthe implementation of the optimization algorithm such that all sequencesstart with v₁ (the smallest partition); and constructing a forwardsequence and a reverse sequence if a 0-1 matrix comprises reversiblesymmetric cycles.
 15. The cyclic combinatorial method according to claim10, further comprising the steps of: allocating right hand side of dualconstraints A^(T)y≦1, which is equal to 1, among the dual variables(columns of A^(T)) in order to maximize the dual objective W in a waysuch that the unit resource is allocated among any number m of selectedcolumns, where m=1, . . . , n; and${{specifying}\mspace{14mu} {the}\mspace{14mu} {dual}\mspace{14mu} {solution}\mspace{14mu} {by}\mspace{14mu} y_{i}} = \left\{ {\begin{matrix}{{1/L},} & {i \in {S\; C}} \\{0,} & {i \notin {S\; C}}\end{matrix},{W = {\frac{1}{L}{\sum\limits_{i \in {S\; C}}r_{i}}}},{L = {\max\limits_{i}\left( {\sum\limits_{j \in {SC}}a_{ij}^{T}} \right)}},{{{where}a_{ij}^{T}} = {{elements}\mspace{14mu} {of}\mspace{14mu} A^{T}}},{{{where}i} = 1},\ldots \mspace{11mu},n,{j = 1},\ldots \mspace{11mu},n,{L = \max}} \right.$number of non-zero coefficients in selected columns, L≦m, SC=set of mselected columns (variables).
 16. The cyclic combinatorial methodaccording to claim 9, wherein the rules application step furthercomprises the steps of: utilizing a first rule wherein solution Fdominates solution G if SC_(G)⊂SC_(F) (implying m_(F)>m_(G)) andL_(F)=L_(G); utilizing a second rule wherein solutions F and C areconsidered to dominate solution H if SC_(H)=SC_(F)+SC_(G) (implyingm_(H)=m_(F)+m_(G)) and L_(H)=L_(F)+L_(G); rounding dominant dualsolutions up to nearest integer values in order to develop a generalexpression for the value of W; adding the constraint${\sum\limits_{j = 1}^{n}x_{j}} \geq W$ in order to efficiently obtainan integer primal solution to the problem; and applying primal-dualcomplementary slackness relations to the dominant dual solutions inorder to derive closed-form solutions to the primal problem.
 17. Asystem for performing cyclic combinatorial integer linear programmingoptimization, the system comprising: means for accepting parametersrelated to the problem as system inputs; means for identifying a linearobjective function and its linear constraints for optimization; meansfor codifying the objective function and the linear constraints as aplurality of matrices; means for enumerating cyclically distinctcombinations of basic dual variables related to any of the matriceshaving cyclic 0-1 properties so as to identify cyclically distinctsolutions; means for applying a set of rules to the cyclically distinctsolutions in order to provide a set of dominant solutions to therebysolve the problem; and means for displaying the set of dominantsolutions to a user of the system.
 18. The system for performing cycliccombinatorial integer linear programming optimization according to claim17, wherein the means for applying a set of rules to the cyclicallydistinct solutions in order to provide a set of dominant solutions tothereby solve the problem further comprises: means for identifyingcyclically-distinct dual solutions having a highest ratio beingdetermined by a quantity of m selected columns of the matrices dividedby a quantity of L, the quantity of L representing the maximum number ofnon-zero coefficients in the selected columns of the matrices.